Java进阶-抽象类

  1. 定义:class 关键字前加 abstract

  2. 抽象类无法被实例化

  3. 虽然无法实例化,但是抽象类也有构造方法,该构造方法是给子类创建对象用的

  4. 抽象类中可以定义抽象方法

    • 语法:在方法的修饰符列表中添加 abstract 关键字,并且抽象方法应该以”;“结束,不能带有”{}“
    • 例如:public abstract void m1();
  5. 抽象类中不一定有抽象方法,但抽象方法必须出现在抽象类中

  6. 一个非抽象类继承抽象类,必须将抽象类的抽象方法覆盖、实现、重写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public abstract class A {
A() {
System.out.println("A...");
}

// 抽象方法
public abstract void m1();

public static void main(String[] args) {
A a = new B();
}
}

class B extends A {
// 继承的抽象方法重写
public void m1() {

}

B() {
super();
System.out.println("B...");
}
}
  1. 抽象类和抽象方法都不能被final修饰